Handle Deposit Transaction RLP encoding #75
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was no proper RLP encoding for encoding body. Also deposit transactions related using eth protocol was also not properly RLP encoded.
This resulted in database sync failure; p2p sync between two op-erigon clients. To be more specific, after
GET_BLOCK_BODIES_66
is sent, the receiver creates outbound messages having typeBLOCK_BODIES_66
which contains body of specific block. The body was empty because the block had only deposit transactions, and deposit transaction was not marshaled, resulting in decoding failure on sender side.Added proper RLP encoding logic for deposit transactions.
Added
block_test.go::TestCanEncodeAndDecodeBodyTransactions
test for checking RLP encoding logic for each transaction type including deposit transactions.